home *** CD-ROM | disk | FTP | other *** search
Wrap
package javax.swing; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Insets; import java.beans.PropertyChangeListener; import java.io.File; import java.io.Serializable; import java.util.Hashtable; import java.util.Properties; import java.util.StringTokenizer; import java.util.Vector; import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; public class UIManager implements Serializable { private static final Object lafStateACKey = new StringBuffer("LookAndFeel State"); private static final Object classLock = new Object(); private static Thread currentLAFStateThread = null; private static LAFState currentLAFState = null; private static final String defaultLAFKey = "swing.defaultlaf"; private static final String auxiliaryLAFsKey = "swing.auxiliarylaf"; private static final String multiplexingLAFKey = "swing.plaf.multiplexinglaf"; private static final String installedLAFsKey = "swing.installedlafs"; private static LookAndFeelInfo[] installedLAFs = new LookAndFeelInfo[]{new LookAndFeelInfo("Metal", "javax.swing.plaf.metal.MetalLookAndFeel"), new LookAndFeelInfo("CDE/Motif", "com.sun.java.swing.plaf.motif.MotifLookAndFeel"), new LookAndFeelInfo("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel")}; // $FF: synthetic field static Class class$javax$swing$UIManager; // $FF: synthetic method static String access$0() { return makeSwingPropertiesFilename(); } // $FF: synthetic method static void access$1(Properties var0, String var1) { checkProperty(var0, var1); } public static void addAuxiliaryLookAndFeel(LookAndFeel var0) { maybeInitialize(); Vector var1 = getLAFState().auxLookAndFeels; if (var1 == null) { var1 = new Vector(); } if (!var1.contains(var0)) { var1.addElement(var0); var0.initialize(); getLAFState().auxLookAndFeels = var1; if (getLAFState().multiLookAndFeel == null) { getLAFState().multiLookAndFeel = getMultiLookAndFeel(); } } } public static void addPropertyChangeListener(PropertyChangeListener var0) { Object var1 = classLock; synchronized(var1){} try { getLAFState().changeSupport.addPropertyChangeListener(var0); } catch (Throwable var3) { throw var3; } } private static void checkProperty(Properties var0, String var1) { try { String var2 = System.getProperty(var1); if (var2 != null) { ((Hashtable)var0).put(var1, var2); } } catch (SecurityException var3) { } } // $FF: synthetic method static Class class$(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(((Throwable)var2).getMessage()); } } public static Object get(Object var0) { return getDefaults().get(var0); } public static LookAndFeel[] getAuxiliaryLookAndFeels() { maybeInitialize(); Vector var0 = getLAFState().auxLookAndFeels; if (var0 != null && var0.size() != 0) { LookAndFeel[] var1 = new LookAndFeel[var0.size()]; for(int var2 = 0; var2 < var1.length; ++var2) { var1[var2] = (LookAndFeel)var0.elementAt(var2); } return var1; } else { return null; } } public static Border getBorder(Object var0) { return getDefaults().getBorder(var0); } public static Color getColor(Object var0) { return getDefaults().getColor(var0); } public static String getCrossPlatformLookAndFeelClassName() { return "javax.swing.plaf.metal.MetalLookAndFeel"; } public static UIDefaults getDefaults() { maybeInitialize(); return getLAFState().multiUIDefaults; } public static Dimension getDimension(Object var0) { return getDefaults().getDimension(var0); } public static Font getFont(Object var0) { return getDefaults().getFont(var0); } public static Icon getIcon(Object var0) { return getDefaults().getIcon(var0); } public static Insets getInsets(Object var0) { return getDefaults().getInsets(var0); } public static LookAndFeelInfo[] getInstalledLookAndFeels() { maybeInitialize(); LookAndFeelInfo[] var0 = installedLAFs; LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length]; System.arraycopy(var0, 0, var1, 0, var0.length); return var1; } public static int getInt(Object var0) { return getDefaults().getInt(var0); } private static LAFState getLAFState() { Thread var0 = Thread.currentThread(); if (var0 == currentLAFStateThread) { return currentLAFState; } else { LAFState var1 = (LAFState)SwingUtilities.appContextGet(lafStateACKey); if (var1 == null) { Object var2 = classLock; synchronized(var2){} try { var1 = (LAFState)SwingUtilities.appContextGet(lafStateACKey); if (var1 == null) { SwingUtilities.appContextPut(lafStateACKey, var1 = new LAFState()); } } catch (Throwable var4) { throw var4; } } currentLAFStateThread = var0; currentLAFState = var1; return var1; } } public static LookAndFeel getLookAndFeel() { maybeInitialize(); return getLAFState().lookAndFeel; } public static UIDefaults getLookAndFeelDefaults() { maybeInitialize(); return getLAFState().getLookAndFeelDefaults(); } private static LookAndFeel getMultiLookAndFeel() { LookAndFeel var0 = getLAFState().multiLookAndFeel; if (var0 == null) { String var1 = "javax.swing.plaf.multi.MultiLookAndFeel"; String var2 = getLAFState().swingProps.getProperty("swing.plaf.multiplexinglaf", var1); try { Class var3 = SwingUtilities.loadSystemClass(var2); var0 = (LookAndFeel)var3.newInstance(); } catch (Exception var4) { System.err.println("UIManager: failed loading " + var2); } } return var0; } public static String getString(Object var0) { return getDefaults().getString(var0); } public static String getSystemLookAndFeelClassName() { String[] var0 = new String[]{""}; SwingUtilities.doPrivileged(new 2(var0)); if (var0[0] != null) { if (var0[0].indexOf("Windows") != -1) { return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; } if (var0[0].indexOf("Solaris") != -1 || var0[0].indexOf("SunOS") != -1) { return "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; } if (var0[0].indexOf("Mac") != -1) { return "com.sun.java.swing.plaf.mac.MacLookAndFeel"; } } return getCrossPlatformLookAndFeelClassName(); } public static ComponentUI getUI(JComponent var0) { maybeInitialize(); ComponentUI var1 = null; LookAndFeel var2 = getLAFState().multiLookAndFeel; if (var2 != null) { var1 = var2.getDefaults().getUI(var0); } if (var1 == null) { var1 = getDefaults().getUI(var0); } return var1; } private static void initialize() { Properties var0 = loadSwingProperties(); try { Compiler.disable(); initializeSystemDefaults(var0); initializeDefaultLAF(var0); initializeAuxiliaryLAFs(var0); initializeInstalledLAFs(var0); } finally { Compiler.enable(); } } private static void initializeAuxiliaryLAFs(Properties var0) { String var1 = var0.getProperty("swing.auxiliarylaf"); if (var1 != null) { Vector var2 = new Vector(); StringTokenizer var3 = new StringTokenizer(var1, ","); while(var3.hasMoreTokens()) { String var5 = var3.nextToken(); try { Class var6 = SwingUtilities.loadSystemClass(var5); var2.addElement(var6.newInstance()); } catch (Exception var7) { System.err.println("UIManager: failed loading auxiliary look and feel " + var5); } } if (var2.size() == 0) { var2 = null; } else { getLAFState().multiLookAndFeel = getMultiLookAndFeel(); if (getLAFState().multiLookAndFeel == null) { var2 = null; } } getLAFState().auxLookAndFeels = var2; } } private static void initializeDefaultLAF(Properties var0) { if (getLAFState().lookAndFeel == null) { String var1 = getCrossPlatformLookAndFeelClassName(); String var2 = var1; String var3 = "<undefined>"; try { var3 = var0.getProperty("swing.defaultlaf", var2); setLookAndFeel(var3); } catch (Exception var5) { try { var3 = var0.getProperty("swing.defaultlaf", var1); setLookAndFeel(var3); } catch (Exception var4) { throw new Error("can't load " + var3); } } } } private static void initializeInstalledLAFs(Properties var0) { String var1 = var0.getProperty("swing.installedlafs"); if (var1 != null) { Vector var2 = new Vector(); StringTokenizer var3 = new StringTokenizer(var1, ",", false); while(var3.hasMoreTokens()) { var2.addElement(var3.nextToken()); } Vector var4 = new Vector(var2.size()); for(int var5 = 0; var5 < var2.size(); ++var5) { String var6 = (String)var2.elementAt(var5); String var7 = var0.getProperty(makeInstalledLAFKey(var6, "name"), var6); String var8 = var0.getProperty(makeInstalledLAFKey(var6, "class")); if (var8 != null) { var4.addElement(new LookAndFeelInfo(var7, var8)); } } installedLAFs = new LookAndFeelInfo[var4.size()]; for(int var9 = 0; var9 < var4.size(); ++var9) { installedLAFs[var9] = (LookAndFeelInfo)var4.elementAt(var9); } } } private static void initializeSystemDefaults(Properties var0) { Object[] var1 = new Object[]{"FocusManagerClassName", "javax.swing.DefaultFocusManager"}; getLAFState().setSystemDefaults(new UIDefaults(var1)); getLAFState().swingProps = var0; } public static void installLookAndFeel(String var0, String var1) { installLookAndFeel(new LookAndFeelInfo(var0, var1)); } public static void installLookAndFeel(LookAndFeelInfo var0) { LookAndFeelInfo[] var1 = getInstalledLookAndFeels(); LookAndFeelInfo[] var2 = new LookAndFeelInfo[var1.length + 1]; System.arraycopy(var1, 0, var2, 0, var1.length); var2[var1.length] = var0; setInstalledLookAndFeels(var2); } private static Properties loadSwingProperties() { if ((class$javax$swing$UIManager != null ? class$javax$swing$UIManager : (class$javax$swing$UIManager = class$("javax.swing.UIManager"))).getClassLoader() != null) { return new Properties(); } else { Properties var0 = new Properties(); SwingUtilities.doPrivileged(new 3(var0)); return var0; } } private static String makeInstalledLAFKey(String var0, String var1) { return "swing.installedlaf." + var0 + "." + var1; } private static String makeSwingPropertiesFilename() { String[] var0 = new String[]{"<java.home undefined>"}; SwingUtilities.doPrivileged(new 1(var0)); String var1 = File.separator; return var0[0] + var1 + "lib" + var1 + "swing.properties"; } private static void maybeInitialize() { Object var0 = classLock; synchronized(var0){} try { if (!getLAFState().initialized) { getLAFState().initialized = true; initialize(); } } catch (Throwable var2) { throw var2; } } public static Object put(Object var0, Object var1) { return getDefaults().put(var0, var1); } public static boolean removeAuxiliaryLookAndFeel(LookAndFeel var0) { maybeInitialize(); Vector var2 = getLAFState().auxLookAndFeels; if (var2 != null && var2.size() != 0) { boolean var1 = var2.removeElement(var0); if (var1) { if (var2.size() == 0) { getLAFState().auxLookAndFeels = null; getLAFState().multiLookAndFeel = null; } else { getLAFState().auxLookAndFeels = var2; } } var0.uninitialize(); return var1; } else { return false; } } public static void removePropertyChangeListener(PropertyChangeListener var0) { Object var1 = classLock; synchronized(var1){} try { getLAFState().changeSupport.removePropertyChangeListener(var0); } catch (Throwable var3) { throw var3; } } public static void setInstalledLookAndFeels(LookAndFeelInfo[] var0) throws SecurityException { LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length]; System.arraycopy(var0, 0, var1, 0, var0.length); installedLAFs = var1; } public static void setLookAndFeel(String var0) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException { Class var1 = SwingUtilities.loadSystemClass(var0); setLookAndFeel((LookAndFeel)var1.newInstance()); } public static void setLookAndFeel(LookAndFeel var0) throws UnsupportedLookAndFeelException { if (var0 != null && !var0.isSupportedLookAndFeel()) { String var2 = var0.toString() + " not supported on this platform"; throw new UnsupportedLookAndFeelException(var2); } else { LookAndFeel var1 = getLAFState().lookAndFeel; if (var1 != null) { var1.uninitialize(); } getLAFState().lookAndFeel = var0; if (var0 != null) { var0.initialize(); getLAFState().setLookAndFeelDefaults(var0.getDefaults()); } else { getLAFState().setLookAndFeelDefaults((UIDefaults)null); } getLAFState().changeSupport.firePropertyChange("lookAndFeel", var1, var0); } } }